// 和用户操作有关的路由
const formidable = require("formidable");
const userModel = require("../models/userModel");
const md5 = require("md5");  // 需要安装 ；
const path = require("path");
let form = new formidable.IncomingForm({
    uploadDir: path.resolve(process.cwd(), "./static"),  // 上传过来的文件存储的路径
    keepExtensions: true   // 保持上传过来的文件的后缀名称；
});
const express = require("express");
let router = express.Router();
router.get("/test", (req, res) => {
    res.send("测试");
})

router.all("/adduser", (req, res) => {
    console.log("有请求过来了");
    form.parse(req, async (err, fields, files) => {
        if (err) {
            return console.log(err)
        }
        // console.log(files);
        /* 
            username 
            pwd
            addtime ?
            imgurl ?
        */
        fields.pwd = md5(fields.pwd);
        fields.addtime = new Date().toLocaleDateString();
        fields.imgurl = files.imgFile.newFilename;
        console.log(fields);
        try {
            await userModel.create(fields);
            console.log("添加成功")
            // setTimeout(() => {
                res.json({
                    info: "添加成功",
                    status: 1
                })
            // }, 1000);
            
        } catch (err) {
            console.log(err)
            res.json({
                info:"添加失败",
                status:0,
                err
            })
        }

    })
   
})

router.get("/getUsers",async (req,res)=>{
    // 接收前端传过来的 页码 叫 p ；
    let {p,perpage} = req.query;
    // 默认没有分页 ，那么就显示第一页；
    if(typeof p === "undefined"){
        p = 1;
    }

    if(typeof perpage === "undefined"){
    // 做分页的处理 
     perpage = 3; // 每一页显示 3条数据；
    }
    
    /* 
    1页  ---- 》 skip(0).limit(3)
    2页  ---->   skip(3).iimit(3);
    3页  -----> skip(6).limit(3);
    n页  ----> skip((n-1)*perpage).limit(perpage)
    let res =  splice((n-1)*perpage,perpage)
    */
// 通过数据的总条数计算页码的总数量；
let totaldata = await userModel.find();  // 查询所有的数据
let totalCount = totaldata.length;
let pageCount = Math.ceil( totalCount/perpage);  // 总的页码数量；

   let result  = await userModel.find(null,{addtime:1,imgurl:1,username:1}).skip((p-1)*perpage).limit(perpage);
   console.log(result);
//    setTimeout(() => {
     res.json({result,pageCount});
//    }, 2000);
})


router.delete("/delUser",async (req,res)=>{
    let {_id} = req.query;
    try{
        await userModel.deleteOne({_id});
        res.json({
            info:"删除成功",
            status:1
        })
    }catch(err){
        console.log(err);
        res.json({
            info:"删除失败",
            status:0,
            err
        })
    }
})

module.exports = router;